package com.sdhs.myproject.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;


/**
 * 我的项目--项目基本信息对象 gc_myproject_information
 *
 * @author andong
 * @date 2025-03-11
 */
@Data
public class GcMyprojectInformation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目基本信息主键 */
    private Long id;
    /*安全项目id*/
    private Long safetyProjectId;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String projectType;

    /** 业主单位id */
    @Excel(name = "业主单位id")
    private Long ownerUnitId;

    /** 业主单位名称 */
    @Excel(name = "业主单位名称")
    private String ownerUnit;

    /** 项目归属id */
    @Excel(name = "项目归属id")
    private String ownerShipId;

    /** 项目归属 */
    @Excel(name = "项目归属")
    private String ownerShip;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private String projectStatus;

    /** 计划开工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartTime;

    /** 计划完工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planEndTime;

    /** 开工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 完工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 是否重点项目 */
    private String isFocus;


    /** 项目所属年份 */
    private String projectData;
    /** 项目所属部门 */
    private String deptId;
    /** 是否督办*/
    private String supervise;
    /** 项目所属公司，部门集合 */
    private List<String> ownerShipList;

    /** 权属单位 */
    @Excel(name = "权属单位")
    private String organization;
    /** 权属单位名称 */
    private String deptName;

    /** 项目总金额 */
    @Excel(name = "项目总金额")
    private BigDecimal totalMoney;

    /** 变更金额 */
    @Excel(name = "变更金额")
    private BigDecimal changeMoney;

    /** 变更后金额 */
    @Excel(name = "变更后金额")
    private BigDecimal changedMoney;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creater;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updater;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDelete;

    /** 商机id */
    @Excel(name = "商机id")
    private String businessId;

    /** 协办单位 */
    private String organizer;
    /** 协办单位负责人 */
    private String organizerHead;
    /** 是否主办单位 */
    private String isOrganization;
    /**
     * 项目关联单位对象
     */
    private GcMyprojectAssociatedUnit gcMyprojectAssociatedUnit;

    /**
     * 项目合同信息对象
     */
    private List<GcMyprojectContractInformation> gcMyprojectContractInformationList;
    /**
     * 利润率测算对象
     */
    private GcMyprojectProfitMarginMeasurement gcMyprojectProfitMarginMeasurement;
    
    /**
     * 项目管理费用明细对象
     */
    private ProjectManageCost projectManageCost;

    /**回款填报总金额*/
    private BigDecimal paidBack;

    /**支付跟踪总金额*/
    private BigDecimal paymentAmount;

    /**管理成本总金额*/
    private BigDecimal costAmount;
    /**用户id*/
    private String userId;
    /**项目安全员id*/
    private String safePersonId;
    /**
     * 项目经理姓名
     */
    private String managerName;
    /**
     * 项目经理电话
     */
    private String pmLink;
    /**
     * 项目安全员电话
     */
    private String safePersonLink;
    /**
     * 项目安全员id
     */
    private Long secureId;
}
